package czk.concrent.enjoyModelWithNotLock.atomicInterger;

import java.util.concurrent.atomic.AtomicInteger;

/**
 * @Author:ChenZhangKun
 * @Date: 2020/6/14 20:07
 */
public class Test {
    public static void main(String[] args) {
        AtomicInteger atomicInteger=new AtomicInteger(0);
        // ++i 保证原子性，不会有线程安全问题
        System.out.println(atomicInteger.incrementAndGet());//1
        // i++ 保证原子性，不会有线程安全问题
        System.out.println(atomicInteger.getAndIncrement());// 1 打印后i变为2
        // 拿到其值
        System.out.println(atomicInteger.get());

        // 指定增加的值 先加后再获取值 都是原子操作
        System.out.println(atomicInteger.addAndGet(3));
        //  先获取值，再添加
        System.out.println(atomicInteger.getAndAdd(3));
        System.out.println(atomicInteger.get());
    }
}
